package com.bank.user.service;

import com.bank.model.entity.User;
import com.bank.model.vo.login.LoginVo;
import com.bank.model.vo.login.PersonalInfoVo;
import com.bank.model.vo.login.RegisterVo;
import com.bank.model.vo.login.UpdatePasswordVo;
import com.bank.model.vo.user.MainpageVo;
import com.bank.model.vo.user.UserBasicInfoVo;
import com.bank.model.vo.user.UserVo;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
import java.util.Map;

/**
 * @author Cejay1314
 * @version 1.0
 * @create 2023/3/20 16:27
 */
public interface UserService {
    //    登录
    Map<String,String> login(LoginVo loginVo);

    //    注册
    void register(RegisterVo registerVo);
    User query(String phoneNumber);

    //    忘记密码
    void updatePassword(UpdatePasswordVo updatePasswordVo, HttpServletRequest httpServletRequest);

    //    修改个人信息
    void updateInfo(PersonalInfoVo personalInfoVo, HttpServletResponse response);

    //    退出登录
    void logout(HttpServletRequest request);

    //    查询个人信息
    PersonalInfoVo queryInfo(long id);

//    查询首页信息
    MainpageVo queryMainpageVo(HttpServletRequest httpServletRequest);

    //    删除账号
    void delUser(long userId);

    //    变更用户身份
    void updateRole(long userId,String roleName);
    List<User> getUsers(String roleName);
    List<User> queryUsers();
    User queryUser(Long id);
    UserBasicInfoVo queryUserBasicInfoVo(Long userId);
    void addUsers(List<UserVo> userVos);
    void addUsers(MultipartFile multipartFile) throws IOException;
}
